<?php

namespace Admin\Controller;

/**
 * Description of PermissionController
 *
 * @author 阿明 symphp@foxmail.com
 */
class PermissionController extends \Think\Controller{
    
    //创建模型对象
    private $_model = null;

    protected function _initialize() {
        //构建数据
        $meta_titles = array(
            'index' => '权限管理',
            'add' => '权限添加',
            'edit' => '权限修改',
            'delete' => '权限删除',
        );
        $meta_title = $meta_titles[ACTION_NAME];
        //发送数据
        $this->assign('meta_title', $meta_title);
        //创建模型对象
        $this->_model = D('Permission');
    }
    
    /**
     * 显示添加权限
     */
    public function add(){
        if(IS_POST){
            if($this->_model->create()===false){
                $this->error(get_error($this->_model->getDbError()));
            }
            //添加权限
            if($this->_model->addPermission()===false){
                $this->error(get_error($this->_model->getDbError()));
            }else{
                $this->success('添加成功');
            }
        }else{
        $this->display_view();
        $this->display();
        }
    }
    
    /**
     * 权限列表显示
     */
    public function index(){
        //获取数据
        $rows = $this->_model->getList();
        //发送数据到视图
        $this->assign('rows', $rows);
        $this->display();
    }
    
    public function edit($id) {
        if (IS_POST) {
            //收集数据
            if ($this->_model->create() === false) {
                $this->error(get_error($this->_model->getError()));
            }
            if ($this->_model->updatePermission() === false) {
                $this->error(get_error($this->_model->getError()));
            }
            $this->success('修改成功', U('Permission/index'));
        } else {
            //获取ztree所需数据
            $this->display_view();
            //获取数据
            $rows = $this->_model->where(array('status' => 1))->find($id);
            //判断数据是否存在
            if ($row === false) {
                $this->error('编辑id有误');
            }
            //发送数据
            $this->assign('row', $rows);
            $this->display('add');
        }
    }

    /**
     * 创建一个公共函数用于传递数据
     */
    private function display_view(){
         //获取数据
            $data = $this->_model->getList('id,name,parent_id');
            //插入顶级分类
            array_unshift($data, array('id'=>0,'name'=>'顶级分类','parent_id'=>0));
            //将数据转换成json
            $jsondata = json_encode($data);
            //发送数据
            $this->assign('jsondata', $jsondata);
    }
    
    /**
     * 使用逻辑删除数据
     * @param type $id
     */
    public function del($id){
        if($this->_model->delPermission($id)===false){
            $this->error('删除失败');
        }else{
            $this->success('删除成功');
        }
    }
}
